/**
     * TikTok 发布短视频
     */

"app"
device.wakeUp()
const appName = "TikTok"
// 导入函数
const { deviceWidth, deviceHeight, randomSleep, deleteDirCache, jsDir,getRandomSong,device_model,
    getTranslateTitle, waitForAndClick, waitForAndSetText, exitAppAndJs,httpUploadErrMsg
} = require("/sdcard/Download/js/config.js");
try{
    launchApp(appName)

    /**
     * 点击创建
     */
    {
        toast("检查是否有同步facebook")
        randomSleep()
        // while(text("跳过").exists() || desc("跳过").exists()){
        //     if(text("跳过").exists()){
        //         text("跳过").click()
        //     }else if(desc("跳过").exists()){
        //         desc("跳过").click()
        //     }
        //     randomSleep()
        // }

        sleep(1000)
        if(!waitForAndClick(desc("创建"))){
            exitAppAndJs("出错脚本："+appName+"\n问题："+"点击创建视频出错！")
        }
        /* pre
        randomSleep()
        var createBtn = id("hig").desc("创建")
        if(createBtn.exists()){
            toastLog("创建")
            createBtn.findOne().click()
            randomSleep()
        }else{
            toastLog("没有创建")
        }
        */
    }

    /**
     * 选择视频
     */
    {
        // 点击上传
        toast("此设备为："+device_model)
        toast("点击上传")
        if(device_model === "9"){
            if(!waitForAndClick(className("android.widget.FrameLayout").id("b9k"))){
                exitAppAndJs("出错脚本："+appName+"\n问题："+"点击上传出错！")
            }
        }else{
            if(!waitForAndClick(className("android.widget.FrameLayout").id("bcm"))){
                exitAppAndJs("出错脚本："+appName+"\n问题："+"点击上传出错！")
            }
        }
        toast("点击全部资源")
        // 点击全部
        if(!waitForAndClick(text("全部"),1,text("全部").find().get(1))){
            exitAppAndJs("出错脚本："+appName+"\n问题：点击全部资源出错！")
        }
        // if(device_model === "9"){
        //     if(!waitForAndClick(id("oof").text("全部"),3)){
        //         exitAppAndJs("出错脚本："+appName+"\n问题："+"点击全部资源出错！")
        //     }
        // }if(!waitForAndClick(id("pa6").text("全部"))){
        //     exitAppAndJs("出错脚本："+appName+"\n问题："+"点击全部资源出错！")
        // }
        // 多选资源
        // var videoList = className("android.widget.Button").depth(24).find()
        // videoList.forEach(function(item){
        //     waitForAndClick(className("android.widget.Button"), 1, item)
        //     randomSleep()
        // })
        /*
        var max = className("FrameLayout").find().size()
        var childList = className("FrameLayout").find()
        for(var i =0; i<max; i++){
            childList.get(i).children().forEach(function(item){
                if(item.className() != null && item.className() === "android.widget.Button"){
                    if(item.id()==="kb3"){
                    }else{
                        waitForAndClick(className("FrameLayout"), 1, item)
                    }
                    
                }
            })
        }
        */
        toast("点击资源")
        if(device_model === "9"){
            id("fhg").find().forEach(item =>{
                waitForAndClick(id("fhg") ,2 ,item)
            })
        }else{
            id("frw").find().forEach(item =>{
                waitForAndClick(id("frw") ,2 ,item)
            })
        }

        // 点击下一步
        log("下一步开始")
        toast("点击下一步")
        if(device_model === "9"){
            if(!waitForAndClick(id("mos").className("android.widget.Button"))){
                exitAppAndJs("出错脚本："+appName+"\n问题："+"点击下一步出错！")
            }
        }else{
            if(!waitForAndClick(id("n9e").className("android.widget.Button"))){
                exitAppAndJs("出错脚本："+appName+"\n问题："+"点击下一步出错！")
            }
        }
        log("下一步结束")

        /* pre
        // 点击上传图片
        var vidoeBtn = className("android.widget.FrameLayout").id("b9k").depth(2)
        if(vidoeBtn.exists()){
            vidoeBtn.findOne().click()
            randomSleep()
        }

        // 多选视频
        var videoList = className("androidx.recyclerview.widget.RecyclerView").depth(3).find()[0].children()
        toastLog("list = "+videoList.length)
        videoList.each(item =>{
            item.child(0).child(0).click()
            randomSleep()
        })

        // 点击下一步
        var nextBtn = id("mos").className("android.widget.Button")
        if(nextBtn.exists()){
            nextBtn.findOne().click()
            randomSleep()
        }
        */
    }

    /**
     * 添加音乐
     * TODO：随机音乐，音乐无就换一首
     */

    {
        toast("开始选择音乐")
        var song = getRandomSong().split('|');
        log("song = "+song)
        // 默认歌曲
        if(song.length === 0){
            toast("无歌曲，使用默认！")
            song[0] = "My 21 Summer"
            song[1] = "Samantha Choi"
        }
        var musicName = song[0]
        var musicAuthor = song[1]
        toast("等待加载")
        while(waitForAndClick(descContains("加载中"))){
            toast("加载中")
            randomSleep()
        }
        toast("点击添加音乐")
        if(device_model === "9"){
            if(!waitForAndClick(id("bpe"))){
                exitAppAndJs("出错脚本："+appName+"\n问题："+"点击添加音乐出错！")
            }
        }else{
            if(!waitForAndClick(id("bu2"))){
                exitAppAndJs("出错脚本："+appName+"\n问题："+"点击添加音乐出错！")
            }
        }

        toast("点击搜索")
        waitForAndClick(desc("搜索"))

        toast("设置文本 = "+musicName+" "+musicAuthor)
        if(device_model === "9"){
            waitForAndSetText(id("dpe"), musicName +" "+musicAuthor)
        }else{
            waitForAndSetText(id("dxk"), musicName +" "+musicAuthor)
        }
        toast("点击搜索") 
        if(device_model === "9"){
            waitForAndClick(id("okj"))
        }else{
            waitForAndClick(id("p79"))
        }

        // 等待加载
        while(!waitForAndClick(descContains("相关音乐"))){
            if(descContains("互联网").exists()){
                exitAppAndJs("出错脚本："+appName+"\n问题："+"无网络！！")
            }
            toast("等待加载")
            sleep(2000)
        }
        
        // 点击选择
        var left = 926,right = 981
        // TODO:切换成m5
        if(device_model === "5"){
            left = 912
            right = 972
        }
        toast("点击音乐")
        var list = className("com.lynx.component.svg.UISvg").find()
        for(var i=0; i<list.size(); i++){
            var item = list.get(i)
            if(item.bounds().centerX() >left && item.bounds().centerX() < right){
                waitForAndClick(className("com.lynx.component.svg.UISvg"), 1,list.get(i))
                break;
            }
        }

        while(waitForAndClick(textContains("加载中"))){
            toast("加载中")
            randomSleep()
        }

        // 点击屏幕，返回下一步
        click(deviceWidth/3, deviceHeight/4)
        randomSleep()

    }


    /**
     * 发布视频
     */
    {

        // 下一步
        toast("点击下一步")
        if(!waitForAndClick(text("下一步"))){
            exitAppAndJs("出错脚本："+appName+"\n问题："+"点击下一步出错！")
        }
        if(waitForAndClick(text("确认"), 3))
        // 添加描述
        toast("添加描述")
        var strText = getTranslateTitle()

        if(!waitForAndSetText(textContains("添加描述"), strText)){
            exitAppAndJs("出错脚本："+appName+"\n问题："+"添加描述出错！")
        }
        if(waitForAndClick(text("确认"), 3))
        // 点击发布
        toast("点击发布")
        if(waitForAndClick(text("确认"), 3))
        randomSleep()
        click(3*deviceWidth/4, 14*deviceHeight/15)
        

        /* pre
        // 编辑视频，点击下一步
        var edit_nextBtn = text("下一步")
        if(edit_nextBtn.exists()){
            click(edit_nextBtn.findOne().bounds().centerX(), edit_nextBtn.findOne().bounds().centerY())
            randomSleep()
        }

        // 添加描述
        var inputBox = descContains("添加描述")
        if(inputBox.exists()){
            inputBox.findOne().setText("这是一条测试视频！")
            randomSleep()
        }

        // 发布
        var publish = desc("发布")
        if(publish.exists()){
            publish.findOne().click()
            randomSleep()
        }
        
        */
    }

    /**
     * (可能出现)公开视频
     */
    {
        toast("是否有公开视频")
        waitForAndClick(text("公开发布视频？"), 2, className("android.widget.Button").text("立即发布"))
        waitForAndClick(id("widget_appName"), 2, text("取消"))
        
        //若出现公开视频
        if(text("公开发布视频？").exists()){
            if(className("android.widget.Button").text("立即发布").exists()){
                className("android.widget.Button").text("立即发布").findOne().click()
                randomSleep()
            }
        }
        // 若出现"Pixel 启动器"
        toast("是否有Pixel 启动器")
        if(id("widget_appName").exists()){
            text("取消").findOne().click()
            randomSleep()
        }
        
    }

    /**
     * 等待上传结束并删除缓存
     */
    {
        // waitForAndClick(desc("主页"))
        // randomSleep()
        
        // while(id("lup").exists()){
        //     toast("等待结束")
        //     sleep(2000)
        //     if(existsCount === 150){
        //         break;
        //     }
        // }
        
        var existsCount = 0;
        waitForAndClick(desc("主页"))
        randomSleep()

        waitForAndClick(id("jev"), 3)

        while(true){
            if(!id("jvm").exists() || existsCount === 100){
                toast("不存在！已经结束！")
                break;
            }
            existsCount++;
            sleep(2000)
        }
        if(existsCount === 100){
            toast("上传失败！！！")
            exitAppAndJs("出错脚本："+appName+"\n问题："+"上传失败！可能是网络原因！")
        }
        
        deleteDirCache(appName)
    }


    /**
     * 写入成功执行的文件
     */
    {
        files.createWithDirs(jsDir + "finish")
    }

    // 关闭后台
    exitAppAndJs()

}catch(e){
    httpUploadErrMsg("脚本执行错误："+appName+" => "+e)
}